#include "../include/double_Sql_list.h"
#include "../include/file.h"
#include "../include/log_in.h"

Log_in_data data[3] = 
{
 { .name = "刘备" , .password = "123" ,  .id = 1  },
 { .name = "关羽" , .password = "123" ,  .id = 0  },
 { .name = "张飞" , .password = "123" ,  .id = 0  }
};




void test_2(void)
{
    Double_Link_List * list = init_double_link_list();

    // 插入数据
    // insert_double_node( list , data[0] , 1 );
    // insert_double_node( list , data[1] , 2 );
    // insert_double_node( list , data[2] , 3 );

    // 修改
    
/*
1、找到 刘备
2、修改权限
3、将刘备的信息 插入到 管理员 链表中
4、将刘备的信息 从 普通用户中 删除
5、将普通用户 链表 和 管理员 链表 覆盖写入文件
*/
    // 遍历 
    print_forward_double_link_list(list);
    
    // 释放空间
    free_double_link_list(&list);
}



int main(int argc, char const *argv[])
{
    test_1();
    return 0;
}




void test_1(void)
{
    // 对链表进行初始化
    Double_Link_List * dom_list = init_double_link_list();  // 普通用户 
    Double_Link_List * root_list = init_double_link_list(); // 管理员用户

    // 数据的载入
    F_scanf( dom_list , "2_dom_data.txt" );
    F_scanf( root_list , "1_root_data.txt" );
    int  dom_num=1,root_num=1;    
for (int i = 0; i < 3; i++)
{
    if(data[i].id==0)
    insert_double_node( dom_list , data[i] , dom_num++);
    else
        insert_double_node( root_list , data[i] , root_num++ );

}
    int num = 0;
    printf("1:进入登陆\t 2:进入注册");
    scanf("%d" , &num);

int sca_num=0,sum,p=0;
    switch (num)
    {
    case 1:
        log_in( dom_list , root_list ,&p);
        sca_num=1;
        break;
    case 2:
        reg( dom_list );
        break;
    default:
        break;
    }
while(p==1||p==2)
{
    if(p==2)
    {
 printf("请输入你要选择的操作\n");
 printf("1,提高用户等级\n");
 printf("2删除用户\n");
 printf("3清空普通用户\n");
 printf("4遍历输出\n");
 printf("5保存并退出\n");
 scanf("%d",&sum);
switch (sum)
{
case 1:
    root_amend( dom_list,root_list);
    break;
case 2:
    del(dom_list);
    break;
    case 3:
    clear_double_link_list(dom_list);
    break;
    case 4:
    root_amend( dom_list,root_list);
    break;
    case 5:
          print_forward_double_link_list(dom_list);
         print_forward_double_link_list(root_list);
         exit(-1);
break;

}
}else
{
    reg(dom_list);
}

} 


    // 释放链表
    free_double_link_list(&dom_list);
    free_double_link_list(&root_list);

}